/**
 * Created with IntelliJ IDEA.
 * Description:
 * User: dings
 * Date: 2024-05-13
 * Time: 20:09
 */
class Dog {
    public static int age;
    public static int flg;

    static {
        age = 3;
        System.out.println("Dog静态代码块");
    }

}
public class Test {
    public static int age;
    public static int score;
    public int num;

    /**
     * 执行顺序：静态代码块-》实例代码块-》构造方法
     * 静态代码块在类加载的时候就被执行，只会执行一次。
     * 实例代码块只有在对象被实例化的时候才被执行，每实例化就会执行一次。
     * 同级代码块看前后顺序。
     * @param num
     */
    public Test(int num) {
        this.num = num;
    }

    {
        num = 100;
        age = 1;
        System.out.println("实例代码块");
    }

    /**
     * 静态代码块在类加载的时候就被执行
     */
    static {
        //num = 99;静态代码块不能实例化非静态成员变量
        age = 8;
        score = 6;
        System.out.println("静态代码块");
    }

    public static void main(String[] args) {
       System.out.println(Test.age);
        Test test1 = new Test(30);
        Test test2 = new Test(30);
        System.out.println("============");
        Dog dog = new Dog();
        //System.out.println(test.num);
    }
}
